

n=30183656394805107357196370521008780218925570049861387216169054600381560517999947182495011076202126709273160644370262874124968897163730207965220921744326193258358200657778320099962189812662073746049174190737733696870138306766952659451198803418491107784028230018858597385184003464461324726173514428396625540948387202029576333925489299994380848535683878295861054849479745468667103738387433149825519903102622708548565692424513329009043335422465827135431803716962258640474502935517125459339414944346181909028036411407296618452373689029356418425024260765592536962977787010290927682883045452686496078325690903591609011622649
h1=7931354967841361677225525366492283823894590697656669456900404637225452955459348179528014507555386203547449783236442156583903338871101372231379416298673332475841552351685699019468753684327399291889812282583934998862651749254999550865157778659585029993856246293740166651157267243002539956928571725540194386430135556941941158115392325448899508409029275561616503138231793202722531305888967930689408754797831414396346372778070017194895510733987493231643773783381517911590791997520439013140032231243105419628779624880308940011265642047838378068375393042924607140918207395722101771037631402904373527746525020704973321077960
h2=25062305644512626278872554723682407404832559793666087363222623557675770421081399157255725073992481546436446297869801169592204892169276487493822396167281356628851048304904314012479222859204326040757182928968731733798383263988650657055905914856184098798472993044182269108543644164055399204428716761331393401597324716686296821274763372210790827746803211415514983448406120655928961667116170309904869353511506605306453153870397660846835063923643054746025854226394115291053816754538318359343733736423501470671478388599730283824290134464908259553611786880318768864343694812103186674192588648465811660170572517267553070038503
c=10566050200491898237861779349951184912833923661795629392708549602522205458471596364817182905986707189288385851923975592583132325630526948547284585859263336194822093938912144662726671172596366107238257782270698285219710310820716655379358362338786357841955558739297544011078781470192343051678062312416475601556385198608232848554523600840313604027144055153075238544724194720089578983488275239449599014873939408460792984830861989839765653149206345119917698514546823183643061389802526139765069463102068988065342441036929752116505115330236182894409200589686944842338651901005676000551266948519276949174935413951432934098553

# h1=pow((p+q),e1,n)=(p^e1+q^e1)%n
# h2=pow((p-q),e1,n)=(p^e1=q^e1)%n
# #h1+h2
# h1+h2=2*p^e1%n

import libnum
from tqdm import  trange
p=libnum.gcd(h1+h2,n)
q=n//p
#print(n==p*q)
phi=(p-1)*(q-1)

for e in trange(1,100000000,2):
    try:
        if libnum.gcd(e,phi)==1:
            d=libnum.invmod(e,phi)
            m=pow(c,d,n)
            flag=libnum.n2s(m)
            if b"flag" in flag:
                print(e)
                print(flag)
                break

    except:
        continue
# 85837
# b'flag{97065396-788c-5274-d5e0d9-ce1c33af3c}'